﻿using IoTCenter.Utilities;
using IoTCenter.Utilities.Models;
using Onvif.WebApi.ServicesImpl;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Onvif.WebApi.Services
{
    public interface IOnvifDeviceRequestProxy
    {
        Task<IDictionary<string, IEnumerable<NameValueObject>>> GetDeviceCapabilities(string ip, string userName, string password);
        Task<IEnumerable<NameValueObject>> GetDeviceProfiles(string ip, string userName, string password, string ver, string url);
        Task<string> GetDeviceStreamUri(string ip, string userName, string password, string token, string ver, string url);
        Task<string> PTZContinuousMove(string ip, string userName, string password, string token, string ver, string url, double pan, double tilt, double zoom);
        Task<IEnumerable<PresetItemResponseModel>> GetPresets(string ip, string userName, string password, string token, string ver, string url);
        Task<OperateResult> GotoPresets(string ip, string userName, string password, string token, string ver, string url, string presetToken);
        Task<OperateResult> SetPresets(string ip, string userName, string password, string token, string ver, string url, string presetName, string presetToken);
        Task<OperateResult> RemovePresets(string ip, string userName, string password, string token, string ver, string url, string presetToken);
    }
}
